package com.chinasoft.tools;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
//23种模式，常见的5,6种
//读取配置文件的工具类-单列模式
public class ConfigManager {
    //唯一的对象
    //对应两种模式的要求1，懒汉模式
    /*private static ConfigManager configManager;*/
    //饿汉模式
    private static ConfigManager configManager = new ConfigManager();
    private static Properties properties;
    //私有构建方法-读取数据库配置文件
    private ConfigManager(){
        String configFile = "database.properties";
        // 将Properties文件的数据进行打包
        properties = new Properties();
        InputStream is = ConfigManager.class.getClassLoader().getResourceAsStream(configFile);
        try{
            properties.load(is);
        }catch(IOException e){
            e.printStackTrace();
        }
    }

    //单例模式有两种设计方式：1.懒汉模式。2.饿汉模式

    //全局访问点-(懒汉模式)
    /*public static synchronized ConfigManager getInstance(){
        if(configManager == null){
            configManager = new ConfigManager();
        }
        return configManager;
    }*/

    //饿汉模式
    //只能以类名调用，而且在该方法中只能调用静态方法，不能调用实例方法和非静态成员
    public static ConfigManager getInstance(){
        return configManager;
    }

    public String getValue(String key){
        return properties.getProperty(key);
    }
}
